1. Field of the Invention
The present invention relates to a print controller and a print control method for generating print page data according to print data, and a printer using the same, and more particularly a print controller and a print control method for improving processing speed utilizing a macro instruction and a printer using the same.
2. Description of the Related Art
With the improvement of data processing speed and communication speed in a computer, improved print speed is required for a printer of outputting data. The printer analyzes (emulates) print data (including commands and data) received from a host and develops these data to bitmap data and then prints out onto a medium using a printer engine.
Namely, printer job processing includes processing of analyzing print data and expanding to bitmap and processing of printing the bitmap data onto a print medium. As a high speed printing has been desired in recent years, it is required to shorten not only the print time but also the time for analysis and expansion of print data. However, in order to obtain high resolution as well as color printing, the time necessary for print data analysis and expansion becomes longer.
Meanwhile, in printer emulation, macro instructions, which is recorded a series of processing operation that includes rendering processing instructions and printer control, are often to perform print job processing. There are a variety of macro instructions ranging from a relatively simple processing instruction to a complicated image rendering processing or a control order, depending on the function or property of each instruction.
In a macro instruction, a set of orders (commands) sandwiched by the start of macro and the end of macro are handled as a single macro. By registering such a macro instruction (namely, a set of commands initiated by the start of macro and terminated by the end of macro), it becomes possible to simplify data description by calling the macro using either a simply defined macro name or a macro number assigned to each macro even when a multiple of operations are required in the job processing.
However, in the print job processing, a macro is called on a page-by-page basis to perform instruction analysis for printing a page. Therefore, in case identical macro instructions are called for a plurality of times in one print job, the first instruction processing is repeated for a plurality of times. This wastes processing time and therefore is not desirable for high speed printing.
To solve the aforementioned factor of print speed reduction, a method has been proposed (for example, in the official gazette of Japanese Unexamined Patent Publication No. Hei-10-138598). This proposal is illustrated referring to FIGS. 12 and 13. According to this prior art, as shown in FIG. 13, a macro data (macro instruction) is stored in a macro data storage 200. According to a macro expansion (call), a macro expansion portion 210 expands the called macro data to a bitmap and stores into a macro cash memory 220. On receipt of a macro expansion call, the macro expansion portion 210 determines whether the called macro has already been expanded into a bitmap data. If the macro has been expanded, the bitmap data is read out from the macro cash memory 220.
According to this prior art, a macro data once expanded to the bitmap data is stored in the cash memory. The bitmap data can be used next time the macro is called so as to avoid re-expansion of the macro data concerned. Thus high speed processing can be attained. One example is shown in FIG. 12. Using form image such as ruled lines 100 etc. in an address book being expanded into macro cash memory 220, high speed printing of the address book becomes possible when character data 110 is expanded to a bitmap.
According to the prior art, all macro instruction which is registered as macro is expanded into a bitmap to store into a cash memory. However, there is a problematic case that this bitmap expansion is not effective for certain macro instructions. One typical example is illustrated below in the case of PCL known as a printer emulation function (by Hewlett-Packard Company) or the like, in which a macro can be registered freely. When a macro having been registered and cashed as a bitmap data is called, the print result may possibly differ depending on the environment (condition) before the time of registration of the macro concerned.
For example, according to the prior art, in case font is not specified in the macro definition, a bitmap data is cashed with font and character size being determined either based on default values or by the environment before the time of macro registration. Therefore, when the macro specified with a certain font and character size is called aiming to print the same character with different font and size, the bitmap data having the font and size at the time of cashing is called. Thus the printout as a result of the macro call may have different font and size.
In such a case according to the prior art, the macro definition cannot produce correct printout desired by a user. To prevent user's confusion, the prior art method cannot be applied to these macro. As a result it becomes difficult to obtain high speed processing.